package br.com.vti.sisp_sicrim.antigo.controller.tela;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;

import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.model.Idclc001;
import br.com.vti.sisp_sicrim.antigo.model.Sisll001;
import br.com.vti.sisp_sicrim.antigo.model.Tablele;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela
 * Idcpc005A
 * 
 * @author Incode - Data: mai/2014
 * 
 */
public class Idcpc005A {
	private boolean enviada = false;
	private String pagina = "/resources/antigo/jsp/Idcpc005A.jsp";
	private String versao;
	private String operacao;
	private int dataCorrente;
	private String horaCorrente;
	private String min2;
	private String pol2;
	private String med2;
	private String ind2;
	private String anu2;
	private String anu3;
	private String ind3;
	private String med3;
	private String pol3;
	private String min3;
	private String[] conimp = new String[3];
	private String nomeClasse;
	private String empresa;
	public String maodir;
	public String maoesq;
	private String mensagem = "";
	private String funcao = "0";
	private String campofocus = "diaidepoldir";
	private String navegar = "";
	private Boolean temMensagem = false;
	private Result result;
	private Sessao sessao;
	// Classes views
	// Classes includes
	Idclc001 idclc001 = new Idclc001();
	Sisll001 sisll001 = new Sisll001();
	Tablele tablele = new Tablele();

	public Idcpc005A() {
		inicializar(false);
	}

	public Idcpc005A(boolean primeiraVez, Sessao sessao) {
		this.sessao = sessao;
		inicializar(primeiraVez);
	}

	public void inicializar(boolean primeiraVez) {
		if (primeiraVez) {
			versao = "9.9";
			operacao = "";
			dataCorrente = 0;
			Arrays.fill(conimp, "");
			nomeClasse = this.getClass().getSimpleName();
			empresa = "SESEC";
			empresa = sessao.getSisgsisp().getEmpresa();
			operacao = sessao.getSisgsisp().getOperacao();
			versao = sessao.getSisgsisp().getVersao();
		}
		horaCorrente = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); // *TIMX
	}

	public boolean receberTela(boolean primeiraVez, Result result) {
		// faz o tratamento das criticas necessarias para os dados da tela
		// recebida
		this.result = result;
		temMensagem = false;
		if (!primeiraVez) {
			return validar();
		} else {
			return true;
		}
	}

	public void enviarTela(boolean primeiraVez, Result result, String origem) {
		this.enviada = true;
		// rotina para enviar a tela
		// caso esteja setado valores para acoesFinais, executa as classes
		// correspondentes
		this.result = result;
		if (UtilBean.acoesFinais != null && !UtilBean.acoesFinais.isEmpty()) {
			UtilBean.processaAcao();
		} else {
			enviar(result, origem);
		}
	}

	public void enviar(Result result, String origem) {
		// redicionar para o jsp correspondente
		UtilBean.redireciona(pagina, result, origem);
	}

	public void enviarMensagem(String campo, String mensagem) {
		// formatar a mensagem de erro, posicionar no campo informa
		if (campo != null) {
			campofocus = campo;
		} else {
			campofocus = "";
		}
		this.mensagem = mensagem;
		temMensagem = true;
		// enviar(result, origem);
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		UtilBean.funcao = this.funcao;
		sessao.getSisgsisp().setEmpresa(this.empresa);
		sessao.getSisgsisp().setOperacao(this.operacao);
		sessao.getSisgsisp().setVersao(this.versao);
		return true;
	}

	public String getVersao() {
		return versao;
	}

	public void setVersao(String versao) {
		this.versao = versao;
	}

	public String getOperacao() {
		return operacao;
	}

	public void setOperacao(String operacao) {
		this.operacao = operacao;
	}

	public int getDataCorrente() {
		return dataCorrente;
	}

	public void setDataCorrente(int dataCorrente) {
		this.dataCorrente = dataCorrente;
	}

	public String getMed2() {
		return med2;
	}

	public void setMed2(String med2) {
		this.med2 = med2;
	}

	public String getInd2() {
		return ind2;
	}

	public void setInd2(String ind2) {
		this.ind2 = ind2;
	}

	public String getAnu2() {
		return anu2;
	}

	public void setAnu2(String anu2) {
		this.anu2 = anu2;
	}

	public String getPol2() {
		return pol2;
	}

	public void setPol2(String pol2) {
		this.pol2 = pol2;
	}

	public String getMin2() {
		return min2;
	}

	public void setMin2(String min2) {
		this.min2 = min2;
	}

	public String getMin3() {
		return min3;
	}

	public void setMin3(String min3) {
		this.min3 = min3;
	}

	public String getPol3() {
		return pol3;
	}

	public void setPol3(String pol3) {
		this.pol3 = pol3;
	}

	public String getAnu3() {
		return anu3;
	}

	public void setAnu3(String anu3) {
		this.anu3 = anu3;
	}

	public String getInd3() {
		return ind3;
	}

	public void setInd3(String ind3) {
		this.ind3 = ind3;
	}

	public String getMed3() {
		return med3;
	}

	public void setMed3(String med3) {
		this.med3 = med3;
	}

	public String[] getConimp() {
		return conimp;
	}

	public String getConimp(int index) {
		return conimp[index];
	}

	public void setConimp(String[] conimp) {
		this.conimp = conimp;
	}

	public void setConimp(int index, String conimp) {
		this.conimp[index] = conimp;
	}

	public String getNomeClasse() {
		return nomeClasse;
	}

	public void setNomeClasse(String nomeClasse) {
		this.nomeClasse = nomeClasse;
	}

	public String getEmpresa() {
		return empresa;
	}

	public void setEmpresa(String empresa) {
		this.empresa = empresa;
	} // /

	public String getMaodir() {
		return this.pol2 + this.ind2 + this.med2 + this.anu2 + this.min2;
	}

	public void setMaodir(String maodir) {
		this.maodir = maodir;
		this.pol2 = UtilBean.subStr(maodir, 0, 7);
		this.ind2 = UtilBean.subStr(maodir, 7, 7);
		this.med2 = UtilBean.subStr(maodir, 14, 7);
		this.anu2 = UtilBean.subStr(maodir, 21, 7);
		this.min2 = UtilBean.subStr(maodir, 28, 7);
	} // /

	public String getMaoesq() {
		return this.pol3 + this.ind3 + this.med3 + this.anu3 + this.min3;
	}

	public void setMaoesq(String maoesq) {
		this.maoesq = maoesq;
		this.pol3 = UtilBean.subStr(maoesq, 0, 7);
		this.ind3 = UtilBean.subStr(maoesq, 7, 7);
		this.med3 = UtilBean.subStr(maoesq, 14, 7);
		this.anu3 = UtilBean.subStr(maoesq, 21, 7);
		this.min3 = UtilBean.subStr(maoesq, 28, 7);
	}

	public String getHoraCorrente() {
		return horaCorrente;
	}

	public void setHoraCorrente(String horaCorrente) {
		this.horaCorrente = horaCorrente;
	}

	public String getFuncao() {
		return funcao;
	}

	public void setFuncao(String funcao) {
		this.funcao = funcao;
	}

	public String getCampofocus() {
		return campofocus;
	}

	public void setCampofocus(String campofocus) {
		this.campofocus = campofocus;
	}

	public String getNavegar() {
		return navegar;
	}

	public void setNavegar(String navegar) {
		this.navegar = navegar;
	}

	public String getMensagem() {
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	public void setMensagemSaida(String mensagem) {
		this.mensagem = mensagem;
	}

	public boolean getEnviada() {
		return this.enviada;
	}

	public void setSessao(Sessao sessao) {
		this.sessao = sessao;
	}
}
